home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / LISP Related / HyperQ. Plastics / rules.p < prev    next >
Encoding:
Text File  |  1991-11-08  |  2.9 KB  |  221 lines  |  [TEXT/AAIS]

  1. max_val_prop_asserted(uts, 12000.01, max).
  2. max_val_prop_asserted(izod, 15.01, max).
  3. max_val_prop_asserted(hdt, 400.01, max).
  4. max_val_prop_asserted(spec_grav, 5.01, max).
  5. max_val_prop_asserted(tms, 1000.01, max).
  6.  
  7.  
  8. rule(attribute_set(cons(uts,cons(izod,cons(hdt,cons(spec_grav,cons(tms,nil)))))),
  9.  true).
  10.  
  11.  
  12. rule(candidate(A),
  13.  and(
  14.   polymer(B,A),
  15.   and(
  16.    ok_by_type(B),
  17.    ok_by_cutoffs(A)))).
  18.  
  19.  
  20. rule(conc(nil,A,A),
  21.  true).
  22.  
  23. rule(conc(cons(A,B),C,cons(A,D)),
  24.  conc(B,C,D)).
  25.  
  26.  
  27. rule(cutoff_assert,
  28.  and(
  29.   findall(and(A,B),cutoff(A,B),C),
  30.   assertz(
  31.    rule(qual_list(C),
  32.     true)))).
  33.  
  34.  
  35. rule(doit4(A),
  36.  and(
  37.   findall(B,candidate(B),C),
  38.   doit41(C,A))).
  39.  
  40.  
  41. rule(doit41(nil,nil),
  42.  true).
  43.  
  44. rule(doit41(cons(A,B),cons(and(A,C),D)),
  45.  and(
  46.   total_points(A,C),
  47.   doit41(B,D))).
  48.  
  49.  
  50. rule(doit5,
  51.  and(
  52.   doit4(A),
  53.   plist(A))).
  54.  
  55.  
  56. rule(doit6(A,B),
  57.  and(
  58.   doit4(C),
  59.   and(
  60.    quicksort(C,D),
  61.    truncate_list(A,D,B)))).
  62.  
  63.  
  64. rule(doit7(A),
  65.  and(
  66.   doit6(A,B),
  67.   plist(B))).
  68.  
  69.  
  70. rule(get_head_of_cons(nil,nil),
  71.  true).
  72.  
  73. rule(get_head_of_cons(cons(and(A,B),C),cons(A,D)),
  74.  get_head_of_cons(C,D)).
  75.  
  76.  
  77. rule(get_tail_of_cons(nil,nil),
  78.  true).
  79.  
  80. rule(get_tail_of_cons(cons(and(A,B),C),cons(B,D)),
  81.  get_tail_of_cons(C,D)).
  82.  
  83.  
  84. rule(gt(and(A,B),and(C,D)),
  85.  and(
  86.   is(E,add(B,1000.021)),
  87.   and(
  88.    is(F,add(D,1000.021)),
  89.    @<(E,F)))).
  90.  
  91.  
  92.  
  93. rule(myappend(nil,A,A),
  94.  true).
  95.  
  96. rule(myappend(cons(A,B),C,cons(A,D)),
  97.  myappend(B,C,D)).
  98.  
  99.  
  100. rule(mymember(A,cons(A,B)),
  101.  true).
  102.  
  103. rule(mymember(A,cons(B,C)),
  104.  mymember(A,C)).
  105.  
  106.  
  107. rule(ok_by_cutoffs(A),
  108.  and(
  109.   qual_list(B),
  110.   qualify_list(A,B))).
  111.  
  112.  
  113. rule(ok_by_type(A),
  114.  and(
  115.   type_list(B),
  116.   mymember(A,B))).
  117.  
  118.  
  119. rule(plist(nil),
  120.  true).
  121.  
  122. rule(plist(cons(A,B)),
  123.  and(
  124.   write(A),
  125.   and(
  126.    nl,
  127.    plist(B)))).
  128.  
  129.  
  130. rule(qualify(A,B,C),
  131.  and(
  132.   attribute(B,A,D),
  133.   and(
  134.    is(E,add(D,1000.021)),
  135.    and(
  136.     is(F,add(C,1000.021)),
  137.     @>=(E,F))))).
  138.  
  139.  
  140. rule(qualify_list(A,nil),
  141.  true).
  142.  
  143. rule(qualify_list(A,cons(and(B,C),D)),
  144.  and(
  145.   qualify(A,B,C),
  146.   qualify_list(A,D))).
  147.  
  148.  
  149. rule(quicksort(nil,nil),
  150.  true).
  151.  
  152. rule(quicksort(cons(A,B),C),
  153.  and(
  154.   split(A,B,D,E),
  155.   and(
  156.    quicksort(D,F),
  157.    and(
  158.     quicksort(E,G),
  159.     conc(F,cons(A,G),C))))).
  160.  
  161.  
  162. rule(rev(nil,A),
  163.  true).
  164.  
  165. rule(rev(cons(A,B),C),
  166.  and(
  167.   rev(B,D),
  168.   myappend(D,cons(A,nil),C))).
  169.  
  170.  
  171. rule(split(A,nil,nil,nil),
  172.  true).
  173.  
  174. rule(split(A,cons(B,C),cons(B,D),E),
  175.  and(
  176.   gt(A,B),
  177.   and(
  178.    cut,
  179.    split(A,C,D,E)))).
  180.  
  181. rule(split(A,cons(B,C),D,cons(B,E)),
  182.  split(A,C,D,E)).
  183.  
  184.  
  185. rule(sub_points(A,B,C),
  186.  and(
  187.   attribute(B,A,D),
  188.   and(
  189.    max_val_prop_asserted(B,E,F),
  190.    and(
  191.     coeff(B,G),
  192.     is(C,div(mul(D,G),E)))))).
  193.  
  194.  
  195. rule(total_points(A,B),
  196.  and(
  197.   attribute_set(C),
  198.   total_points_aux(A,C,B))).
  199.  
  200.  
  201. rule(total_points_aux(A,nil,0.001000),
  202.  true).
  203.  
  204. rule(total_points_aux(A,cons(B,C),D),
  205.  and(
  206.   total_points_aux(A,C,E),
  207.   and(
  208.    sub_points(A,B,F),
  209.    is(D,add(E,F))))).
  210.  
  211.  
  212. rule(truncate_list(A,nil,nil),
  213.  true).
  214.  
  215. rule(truncate_list(0,A,nil),
  216.  true).
  217.  
  218. rule(truncate_list(A,cons(B,C),cons(B,D)),
  219.  and(
  220.   is(E,sub(A,1)),
  221.   truncate_list(E,C,D))).